//****************************************************************************//
//Este "do-file" contem comandos para analisar os dados relativos a disserta- //
//cao de mestrado de Elba Mujica, baseada na Pesquisa Nacional de Saúde de 201//
//9. Em caso de duvida, entrar em contato com Elba Mujica (elbamarinammujica@g//
//mail.com)                                                                   //
//****************************************************************************//

//****************************************************************************//
//Desativando bloqueio de tela (ou "scroll lock")                             //
//****************************************************************************//

set more off

//****************************************************************************//
//1 = CPU da Elba; 2 = CPU do JL; 3 = CPU da Alexandra                        //
//****************************************************************************//

local computer 1

if `computer'==1 {
	**** Notebook da Elba ****
	global c_dta    "C:\Users\Windows 10\Desktop\Dados\Análises-Stata\dta\"
	global c_do     "C:\Users\Windows 10\Desktop\Dados\Análises-Stata\do\"
	global c_log    "C:\Users\Windows 10\Desktop\Dados\Análises-Stata\log\"
	global c_inp    "C:\Users\Windows 10\Desktop\Dados\Análises-Stata\inp\"
	global c_txt    "C:\Users\Windows 10\Desktop\Dados\Análises-Stata\txt\"

}
else if `computer'==2 {
	**** Notebook do JL ****
	global c_dta   "/Users/JoaoLuiz 1/Dropbox/Mestrado Elba Marina Miotto Mujica/Análises/Stata/dta/"
	global c_do    "/Users/JoaoLuiz 1/Dropbox/Mestrado Elba Marina Miotto Mujica/Análises/Stata/do/"
	global c_log   "/Users/JoaoLuiz 1/Dropbox/Mestrado Elba Marina Miotto Mujica/Análises/Stata/log/"
	global c_inp   "/Users/JoaoLuiz 1/Dropbox/Mestrado Elba Marina Miotto Mujica/Análises/Stata/inp/"
	global c_txt   "/Users/JoaoLuiz 1/Dropbox/Mestrado Elba Marina Miotto Mujica/Análises/Stata/txt/"
	
}
else if `computer'==3 {
	**** CPU da Alexandra ****
	global c_dta    //Inserir caminho das pastas aqui//
	global c_do     //Inserir caminho das pastas aqui//
	global c_log    //Inserir caminho das pastas aqui//
	global c_inp    //Inserir caminho das pastas aqui//
	global c_txt    //Inserir caminho das pastas aqui//
}

cap log close
log using "${c_log}organizando_banco_elba.log", replace text

//****************************************************************************//
//Importando o banco de dados para o formato Stata                            //
//****************************************************************************//

infile using "${c_inp}input_stata.dct"

//****************************************************************************//
//Salvando o banco de dados com outro nome                                    //
//****************************************************************************//

save "${c_dta}banco_PNS_2019.dta", replace

//****************************************************************************//
//Mantendo no banco de dados apenas as variaveis de interesse   //
//****************************************************************************//

use "${c_dta}banco_PNS_2019.dta"

keep V0001 V0024 UPA_PNS V0020 C006 C008 C009 D00301 D006 D008 ///
D00901 D01201 D014 J014 J01701 J021 J026 J02901 J03001 J034 ///
V00281 VDD004A VDDATA
 				    
//****************************************************************************//  
//Renomeando as variaveis e categorias de interesse                           //
//****************************************************************************//

rename V0001 uf
rename V0020 ano
rename C006 genero
rename C008 idade
rename C009 raca
rename D00301 cursofreq
rename D006 anoescol
rename D008 semescol
rename D00901 cursoelevado
rename D01201 aprovacao
rename D014 conclusao
rename J014 procura_atend
rename J01701 primeiro_atend
rename J021 ultimo_atend
rename J026 atend_sus
rename J02901 medicamento
rename J03001 acesso_med_geral
rename J034 acesso_med_publico
rename VDD004A escolaridade
rename VDDATA data

label variable genero "Genero do respondente"
label variable idade "Idade em anos completos"
label variable raca "Raca do respondente"
label variable cursofreq "Curso que frequenta"
label variable anoescol "Qual é o ano/semestre/série que frequenta?"
label variable semescol "Anteriormente frequentou escola ou creche?"
label variable cursoelevado "Curso mais elevado que frequentou"
label variable aprovacao "Conclusão com aprovação do primeiro ano/semestre do curso frequentado" 
label variable conclusao "Conclusão do curso que frequentou"
label variable procura_atend "Procura por atendimento de saúde nas 2 últimas semanas"
label define codprocura 1 "Sim" 2 "Não"
label values procura_atend codprocura
label variable primeiro_atend "Atendimento realizado na primeira vez que procurou"
label variable ultimo_atend "Atendimento realizado na última vez que procurou"
label variable atend_sus "Atendimento foi realizado pelo SUS?"
label define codatend 1 "Sim" 2 "Não" 3 "Não sabe/Não lembra"
label values atend_sus codatend
label variable medicamento "Neste atendimento foi receitado algum medicamento?"
label values medicamento codprocura
label variable acesso_med_geral "Conseguiu obter os medicamentos receitados?"
label variable acesso_med_publico "Algum dos medicamentos foi obtido em serviço público de saúde?"
label variable escolaridade "Nível de instrução mais elevado padronizado para o Ens. Fund. - SIST. 9 ANOS"

//****************************************************************************//  
//Categorizando ou re-categorizando as variaveis de interesse                 //
//****************************************************************************//

**** Cor/raça ****

gen cor_raca=.
label variable cor_raca "Cor/raca do respondente"
recode cor_raca (.=1) if raca==1
recode cor_raca (.=2) if raca==2
recode cor_raca (.=2) if raca==4
label define codraca 1 "Branca" 2 "Negra"
label values cor_raca codraca

**** Gênero **** 

label define codgen 1 "Homem" 2 "Mulher"
label values genero codgen

**** Escolaridade ****

* calculando a partir da variável derivada "escolaridade"

recode escolaridade (1/3=2) (4/7=1), gen (escolaridade1)
label define codescol 1 "alto" 2 "baixo"
label values escolaridade1 codescol

* calculando a partir das variáveis "cursoelevado", "cursofreq" , "semescol", //
// "anoescol", "aprovacao", "conclusao" // 

recode cursoelevado (1/8=2) (9/15=1), gen (escolaridade2)
recode escolaridade2 (.=2) if cursofreq==1
recode escolaridade2 (.=2) if cursofreq==2
recode escolaridade2 (.=2) if cursofreq==3
recode escolaridade2 (.=2) if cursofreq==4
recode escolaridade2 (.=2) if cursofreq==5
recode escolaridade2 (.=1) if cursofreq==6
recode escolaridade2 (.=1) if cursofreq==7
recode escolaridade2 (.=1) if cursofreq==8
recode escolaridade2 (.=1) if cursofreq==9
recode escolaridade2 (.=1) if cursofreq==10
recode escolaridade2 (.=1) if cursofreq==11
recode escolaridade2 (.=2) if semescol==2
recode escolaridade2 (1=2) if cursofreq==6 & anoescol==1
recode escolaridade2 (1=2) if cursofreq==7 & anoescol==1
recode escolaridade2 (1=2) if cursofreq==6 & anoescol==13
recode escolaridade2 (1=2) if cursofreq==7 & anoescol==13
recode escolaridade2 (1=2) if cursoelevado==9 & aprovacao==2
recode escolaridade2 (1=2) if cursoelevado==9 & aprovacao==3
recode escolaridade2 (1=2) if cursoelevado==10 & aprovacao==2
recode escolaridade2 (1=2) if cursoelevado==10 & aprovacao==3
recode escolaridade2 (1=2) if cursoelevado==11 & aprovacao==2
recode escolaridade2 (1=2) if cursoelevado==11 & aprovacao==3
recode escolaridade2 (2=1) if cursoelevado==9 & aprovacao==3 & conclusao==1
recode escolaridade2 (2=1) if cursoelevado==10 & aprovacao==3 & conclusao==1
recode escolaridade2 (2=1) if cursoelevado==11 & aprovacao==3 & conclusao==1
recode escolaridade2 (2=.) if idade==0 | idade==1 | idade==2 | idade==3 | idade==4 
label values escolaridade2 codescol

* verificando as observações das variáveis "escolaridade1" e "escolaridade2"

tab1 escolaridade1 escolaridade2 // escolaridade1 = escolaridade2 // 

* renomeando a variável escolaridade1

rename escolaridade1 ns
label variable ns "Nível socioeconômico"

**** Macrorregião ****

recode uf (41/43=1) (31/35=2) (50/53=3) (21/29=4) (11/17=5), gen (macroreg)
label define codmacro 1 "Sul" 2 "Sudeste" 3 "Centro-Oeste" 4 "Nordeste" 5 "Norte"
label values macroreg codmacro
label variable macroreg "Macrorregião"

*** Grupos interseccionais *** 

gen intersec=.
label variable intersec "Categorias interseccionais de respondentes"
recode intersec (.=1) if genero==1 & cor_raca==1 & ns==1
recode intersec (.=2) if genero==1 & cor_raca==1 & ns==2
recode intersec (.=3) if genero==1 & cor_raca==2 & ns==1
recode intersec (.=4) if genero==1 & cor_raca==2 & ns==2
recode intersec (.=5) if genero==2 & cor_raca==1 & ns==1
recode intersec (.=6) if genero==2 & cor_raca==1 & ns==2
recode intersec (.=7) if genero==2 & cor_raca==2 & ns==1
recode intersec (.=8) if genero==2 & cor_raca==2 & ns==2
label define codintersec 1 "h-br-altoNS" 2 "h-br-baixoNS" 3 "h-ne-altoNS" 4 "h-ne-baixoNS" 5 "m-br-altoNS" 6 "m-br-baixoNS" 7 "m-ne-altoNS" 8 "m-ne-baixoNS" 
label values intersec codintersec 

**** Acesso ao atendimento de saúde ****

gen acesso_atend=.
label variable acesso_atend "Respondentes que procuraram atendimento e foram atendidos"
recode acesso_atend (.=1) if procura_atend==1 & primeiro_atend==3 
recode acesso_atend (.=1) if procura_atend==1 & primeiro_atend==2 & ultimo_atend==1
recode acesso_atend (.=0) if procura_atend==1 & primeiro_atend==2 & ultimo_atend==2
recode acesso_atend (.=0) if procura_atend==1 & primeiro_atend==2 & ultimo_atend==.
recode acesso_atend (.=1) if procura_atend==1 & primeiro_atend==1 & ultimo_atend==1
recode acesso_atend (.=0) if procura_atend==1 & primeiro_atend==1 & ultimo_atend==2
recode acesso_atend (.=0) if procura_atend==1 & primeiro_atend==1 & ultimo_atend==.
label define codacesso 0 "Não" 1 "Sim"   
label values acesso_atend codacesso

**** Acesso geral ao medicamento **** 

recode acesso_med_geral(2=0) // transformada a variável de acesso em uma variável dicotômica //
recode acesso_med_geral(3=0)
label values acesso_med_geral codacesso

recode acesso_med_publico(2=0) 
recode acesso_med_publico(3=0)
label values acesso_med_publico codacesso

**** Acesso público ao medicamento dos que tiveram atendimento no sus (exclusivo sus) ****

gen acesso_med_publico_atendsus=.
label variable acesso_med_publico_atendsus "Conseguiu obter o medicamento no SUS? (que tiveram atendimento no SUS)"
recode acesso_med_publico_atendsus (.=1) if acesso_med_publico==1 & atend_sus==1
recode acesso_med_publico_atendsus (.=0) if acesso_med_publico==0 & atend_sus==1
label values acesso_med_publico_atendsus codacesso

**** Acesso público ao medicamento dos que não tiveram atendimento no sus ****

gen acesso_med_publico_naoatendsus=.
label variable acesso_med_publico_naoatendsus "Conseguiu obter o medicamento no SUS? (que não tiveram atendimento no SUS)"
recode acesso_med_publico_naoatendsus (.=1) if acesso_med_publico==1 & atend_sus==2
recode acesso_med_publico_naoatendsus (.=0) if acesso_med_publico==0 & atend_sus==2
label values acesso_med_publico_naoatendsus codacesso

//****************************************************************************//  
//Considerando o desenho amostral complexo nas estimativas                    //
//****************************************************************************//

svyset UPA_PNS [pweight=V00281], strata(V0024) vce(linearized) singleunit(certainty)

//****************************************************************************//  
//Identificando o conjunto de participantes com dados validos para todas as va//
//riaveis incluidas na analise (amostra analitica)                            //
//****************************************************************************//

mark nomiss
la var nomiss "Amostra analitica"

#delimit ;
markout nomiss

uf
V0024 
UPA_PNS
V00281
genero
idade
cor_raca
ns 
macroreg 
intersec
acesso_atend
medicamento
acesso_med_geral

;
#delimit cr

//****************************************************************************//  
//Ordenando as variaveis do banco de dados                                    //
//****************************************************************************//

#delimit ;
order

uf
V0024 
UPA_PNS
ano
V00281
data
nomiss
genero
idade
raca
cor_raca
cursofreq
anoescol
semescol
cursoelevado
aprovacao
conclusao
ns 
escolaridade2 
escolaridade
macroreg 
intersec
procura_atend
primeiro_atend
ultimo_atend
acesso_atend
atend_sus
medicamento
acesso_med_geral
acesso_med_publico
acesso_med_publico_atendsus
acesso_med_publico_naoatendsus

;
#delimit cr

//****************************************************************************//
//Analises                                                                    //
//****************************************************************************//

**** Descrição do banco e composição da amostra **** 

svy: tabulate procura, percent ci obs format(%12.1f) // 18,6% (46.914) dos respondentes procuraram atendimento de saúde nas 2 últimas semanas // 
svy: tabulate acesso_atend, percent ci obs format(%12.1f) // desses que procuraram atendimento 86,1% (40.357) foram atendidos // 
svy: tabulate medicamento if acesso_atend==1, percent ci obs format(%12.1f) // desses que foram atendidos 60,9% (24.753) tiveram prescrição de algum medicamento //
svy: tabulate atend_sus if acesso_atend==1, percent ci obs format(%12.1f) // desses que foram atendidos 57,2% (24.640) foram atendidos no SUS e 42,5% (15.626) não foram atendidos no sus//
svy: tabulate medicamento if acesso_atend==1 & atend_sus==1, percent ci obs format(%12.1f) // desses que foram atendidos no SUS, 64,8% (15.955) tiveram prescrição de algum medicamento // 
svy: tabulate medicamento if acesso_atend==1 & atend_sus==2, percent ci obs format(%12.1f) // desses que não foram atendidos no SUS, 55,5% (8.746) tiveram prescrição de algum medicamento //

// Mantendo no banco de dados apenas as observacoes de interesse // 

keep if acesso_atend==1 & medicamento==1 // mantendo no banco apenas os respondentes que tiveram atendimento de saúde nas 2 últimas semanas e que tiveram prescrição de algum medicamento nesse atendimento // 
keep if idade >=15  // mantendo no banco apenas respondentes com 15 anos ou mais de idade // 4.643 respondentes excluídos
tab raca if nomiss==0 // verificando características dos respondentes que serão excluídos // 126 categoria "amarela"; 162 categoria "indígena"; e 3 respondentes sem informação para cor/raça //
drop if nomiss==0 // mantendo no banco apenas respondentes com dados válidos para todas as variáveis de interesse //

// Salvando o banco de dados com outro nome //                                 

save "${c_dta}banco_PNS_2019_elba.dta", replace

**** Descrição da amostra ****

// Acesso geral //
svy: tabulate genero, percent ci obs format(%12.1f)
svy: tabulate cor_raca, percent ci obs format(%12.1f)
svy: tabulate ns, percent ci obs format(%12.1f)
svy: tabulate macroreg, percent ci obs format(%12.1f)
svy: tabulate intersec, percent ci obs format(%12.1f)
svy: tabulate acesso_med_geral, percent ci obs format(%12.1f) // acesso geral
 
// Acesso público dos que tiveram atendimento no SUS (exclusivo SUS) //  
tab acesso_med_publico, m // 16.310 respondentes com informação válida para acesso aos medicamentos pelo SUS
svy: tabulate atend_sus, percent ci obs format(%12.1f) // considerando a minha amostra, 60% dos respondentes (12.494) foram atendidos no SUS
tab acesso_med_publico if atend_sus==1, m // dos atendidos no sus, 9.989 respondentes com informação válida para acesso aos medicamentos pelo SUS 

svy: tabulate genero if acesso_med_publico_atendsus~=., percent ci obs format(%12.1f)
svy: tabulate cor_raca if acesso_med_publico_atendsus~=., percent ci obs format(%12.1f)
svy: tabulate ns if acesso_med_publico_atendsus~=., percent ci obs format(%12.1f)
svy: tabulate macroreg if acesso_med_publico_atendsus~=., percent ci obs format(%12.1f)
svy: tabulate intersec if acesso_med_publico_atendsus~=., percent ci obs format(%12.1f)
svy: tabulate acesso_med_publico_atendsus, percent ci obs format(%12.1f) // acesso exclusivo SUS

// Acesso público dos que não tiveram atendimento no SUS //  
tab acesso_med_publico, m // 16.310 respondentes com informação válida para acesso aos medicamentos pelo SUS
svy: tabulate atend_sus, percent ci obs format(%12.1f) // considerando a minha amostra, 39,7% dos respondentes (7.284) não foram atendidos no SUS
tab acesso_med_publico if atend_sus==2, m // dos não atendidos no sus, 6.285 respondentes com informação válida para acesso aos medicamentos pelo SUS 

svy: tabulate genero if acesso_med_publico_naoatendsus~=., percent ci obs format(%12.1f)
svy: tabulate cor_raca if acesso_med_publico_naoatendsus~=., percent ci obs format(%12.1f)
svy: tabulate ns if acesso_med_publico_naoatendsus~=., percent ci obs format(%12.1f)
svy: tabulate macroreg if acesso_med_publico_naoatendsus~=., percent ci obs format(%12.1f)
svy: tabulate intersec if acesso_med_publico_naoatendsus~=., percent ci obs format(%12.1f)
svy: tabulate acesso_med_publico_naoatendsus, percent ci obs format(%12.1f) // acesso público não exclusivo SUS

**** Prevalências de acesso **** 

// Acesso geral //
svy: tabulate genero acesso_med_geral, row obs percent ci format(%12.1f)
svy: tabulate cor_raca acesso_med_geral, row obs percent ci format(%12.1f)
svy: tabulate ns acesso_med_geral, row obs percent ci format(%12.1f)
svy: tabulate macroreg acesso_med_geral, row obs percent ci format(%12.1f)
svy: tabulate intersec acesso_med_geral, row obs percent ci format(%12.1f)
tab macroreg
svy: tabulate intersec acesso_med_geral if macroreg==1, row obs percent ci format(%12.1f) // Sul
svy: tabulate intersec acesso_med_geral if macroreg==2, row obs percent ci format(%12.1f) // Sudeste
svy: tabulate intersec acesso_med_geral if macroreg==3, row obs percent ci format(%12.1f) // Centro-Oeste
svy: tabulate intersec acesso_med_geral if macroreg==4, row obs percent ci format(%12.1f) // Nordeste
svy: tabulate intersec acesso_med_geral if macroreg==5, row obs percent ci format(%12.1f) // Norte

// Acesso público exclusivo SUS //
svy: tabulate genero acesso_med_publico_atendsus, row obs percent ci format(%12.1f)
svy: tabulate cor_raca acesso_med_publico_atendsus, row obs percent ci format(%12.1f)
svy: tabulate ns acesso_med_publico_atendsus, row obs percent ci format(%12.1f)
svy: tabulate macroreg acesso_med_publico_atendsus, row obs percent ci format(%12.1f)
svy: tabulate intersec acesso_med_publico_atendsus, row obs percent ci format(%12.1f)
tab macroreg if acesso_med_publico~=. & atend_sus==1
svy: tabulate intersec acesso_med_publico_atendsus if macroreg==1, row obs percent ci format(%12.1f) // Sul
svy: tabulate intersec acesso_med_publico_atendsus if macroreg==2, row obs percent ci format(%12.1f) // Sudeste
svy: tabulate intersec acesso_med_publico_atendsus if macroreg==3, row obs percent ci format(%12.1f) // Centro-Oeste
svy: tabulate intersec acesso_med_publico_atendsus if macroreg==4, row obs percent ci format(%12.1f) // Nordeste
svy: tabulate intersec acesso_med_publico_atendsus if macroreg==5, row obs percent ci format(%12.1f) // Norte

// Acesso público dos que não tiveram atendimento no SUS //
svy: tabulate genero acesso_med_publico_naoatendsus, row obs percent ci format(%12.1f)
svy: tabulate cor_raca acesso_med_publico_naoatendsus, row obs percent ci format(%12.1f)
svy: tabulate ns acesso_med_publico_naoatendsus, row obs percent ci format(%12.1f)
svy: tabulate macroreg acesso_med_publico_naoatendsus, row obs percent ci format(%12.1f)
svy: tabulate intersec acesso_med_publico_naoatendsus, row obs percent ci format(%12.1f)
tab macroreg if acesso_med_publico~=. & atend_sus==2
svy: tabulate intersec acesso_med_publico_naoatendsus if macroreg==1, row obs percent ci format(%12.1f) // Sul
svy: tabulate intersec acesso_med_publico_naoatendsus if macroreg==2, row obs percent ci format(%12.1f) // Sudeste
svy: tabulate intersec acesso_med_publico_naoatendsus if macroreg==3, row obs percent ci format(%12.1f) // Centro-Oeste
svy: tabulate intersec acesso_med_publico_naoatendsus if macroreg==4, row obs percent ci format(%12.1f) // Nordeste
svy: tabulate intersec acesso_med_publico_naoatendsus if macroreg==5, row obs percent ci format(%12.1f) // Norte

**** Aplicação dos modelos de regressão logística ****

// Acesso geral // 

* Modelo 1 
svy: logistic acesso_med_geral i.genero
svy: logistic acesso_med_geral i.cor_raca
svy: logistic acesso_med_geral i.ns
svy: logistic acesso_med_geral i.macroreg
svy: logistic acesso_med_geral i.intersec

* Modelo 2
svy: logistic acesso_med_geral i.genero i.cor_raca i.ns i.macroreg

* Modelo 3
svy: logistic acesso_med_geral i.intersec i.macroreg 

* Modelo com termos de interação 
svy: logistic acesso_med_geral i.intersec##i.macroreg
margins i.intersec##i.macroreg
marginsplot

// Acesso público exclusivo SUS //

* Modelo 1 
svy: logistic acesso_med_publico_atendsus i.genero
svy: logistic acesso_med_publico_atendsus i.cor_raca
svy: logistic acesso_med_publico_atendsus i.ns
svy: logistic acesso_med_publico_atendsus i.macroreg
svy: logistic acesso_med_publico_atendsus i.intersec

* Modelo 2
svy: logistic acesso_med_publico_atendsus i.genero i.cor_raca i.ns i.macroreg

* Modelo 3
svy: logistic acesso_med_publico_atendsus i.intersec i.macroreg

* Modelo com termos de interação
svy: logistic acesso_med_publico_atendsus i.intersec##i.macroreg
margins i.intersec##i.macroreg
marginsplot

// Acesso público dos que não tiveram atendimento no SUS //

* Modelo 1 
svy: logistic acesso_med_publico_naoatendsus i.genero
svy: logistic acesso_med_publico_naoatendsus i.cor_raca
svy: logistic acesso_med_publico_naoatendsus i.ns
svy: logistic acesso_med_publico_naoatendsus i.macroreg
svy: logistic acesso_med_publico_naoatendsus i.intersec

* Modelo 2
svy: logistic acesso_med_publico_naoatendsus i.genero i.cor_raca i.ns i.macroreg

* Modelo 3
svy: logistic acesso_med_publico_naoatendsus i.intersec i.macroreg

* Modelo com termos de interação
svy: logistic acesso_med_publico_naoatendsus i.intersec##i.macroreg
margins i.intersec##i.macroreg
marginsplot

//****************************************************************************//  
//Encerrando as analises, salvando o "log" e fechando o banco de dados        //
//****************************************************************************//

cap log close
clear
cls
exit
